package com.im.service.friendship.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.im.common.model.RequestBase;
import com.im.common.model.SyncReq;
import com.im.common.model.SyncResp;
import com.im.service.friendship.entity.FriendShip;
import com.im.service.friendship.model.req.*;
import com.im.service.friendship.model.resp.CheckFriendShipResp;
import com.im.service.friendship.model.resp.ImportFriendShipResp;
import com.im.service.user.entity.ImUserDataEntity;

import java.util.List;


public interface ImFriendService extends IService<FriendShip> {

    // 导入好友关系
    ImportFriendShipResp importFriendShip(ImporFriendShipReq req);

    // 添加好友
    void addFriend(AddFriendReq req);

    // 更新好友关系
    void updateFriend(UpdateFriendReq req);

    // 删除好友
    void deleteFriend(DeleteFriendReq req);

    // 删除所有好友
    void deleteAllFriend(DeleteFriendReq req);

    // 获取所有好友关系列表
    List<FriendShip> getAllFriendShip(GetAllFriendShipReq req);

    // 获取好友关系
    FriendShip getRelation(GetRelationReq req);

    // 执行添加好友操作
    void doAddFriend(RequestBase requestBase, String fromId, FriendDto dto, Integer appId);

    // 检查好友关系
    List<CheckFriendShipResp> checkFriendship(CheckFriendShipReq req);

    // 将好友加入黑名单
    ImUserDataEntity addBlack(AddFriendShipBlackReq req);

    // 将好友从黑名单中删除
    void deleteBlack(DeleteBlackReq req);

    // 检查黑名单中的好友关系
    List<CheckFriendShipResp> checkBlck(CheckFriendShipReq req);

    // 同步好友关系列表
    SyncResp<FriendShip> syncFriendshipList(SyncReq req);

    // 获取所有好友的 ID
    List<String> getAllFriendId(String userId, Integer appId);
}
